import Vue from 'vue'
import VueI18n from 'vue-i18n'
import { updateLang } from './userInfo'
import en from '@/src/lang/en.js'
import zh from '@/src/lang/zh-CN.js'
import zhTw from '@/src/lang/zh-TW.js'
import ja from '@/src/lang/ja.js'
import ko from '@/src/lang/ko.js'
import fr from '@/src/lang/fr.js'
import de from '@/src/lang/de.js'
import es from '@/src/lang/es.js'
import pt from '@/src/lang/pt.js'
import th from '@/src/lang/th.js'
import tr from '@/src/lang/tr.js'
import vi from '@/src/lang/vi.js'
import it from '@/src/lang/it.js'
import nl from '@/src/lang/nl.js'
import ru from '@/src/lang/ru.js'

Vue.use(VueI18n)

// 获取系统语言
const getSystemLang = () => {
	console.log('执行获取系统语言')
	try {
		const systemInfo = uni.getSystemInfoSync()
		 //const languages = ['en', 'tw', 'ar', 'ko', 'tr', 'de', 'it', 'ja', 'vi', 'th', 'pt'];
		 //const systemLang = languages.includes(value)?systemInfo.language:'en'
		 const systemLang = 'en'
		console.log('系统', systemLang)
		// 支持的语言映射
		const langMap = {
			'en': 'en',
			'zh': 'zh',
			'zhTw': 'zhTw',
			'ja': 'ja',
			'ko': 'ko',
			'fr': 'fr',
			'de': 'de',
			'es': 'es',
			'zh-CN': 'zh',
			'zh-TW': 'zhTw',
			'ja-JP': 'ja',
			'ko-KR': 'ko',
			'fr-FR': 'fr',
			'de-DE': 'de',
			'es-ES': 'es'
		}

		return langMap[systemLang] || 'en'
	} catch (e) {
		return 'en'
	}
}

// 获取保存的语言设置
const savedLang = uni.getStorageSync('app_lang') || getSystemLang()
//设置传递后端当前语言标识
if (savedLang == 'zhTw') {
	updateLang('tw')
}else if(savedLang=='zh'){
	updateLang('zh-cn') 
}  else {
	const languages = ['en', 'tw', 'ar', 'ko', 'tr', 'de', 'it', 'ja', 'vi', 'th', 'pt', 'ru', 'nl','es'];
	const systemLang = languages.includes(savedLang)?savedLang:'en'
	updateLang(systemLang)
}
const i18n = new VueI18n({
	locale: savedLang,
	fallbackLocale: 'en',
	messages: {
		en,
		zh,
		zhTw,
		ja,
		ko,
		fr,
		de,
		es,
		pt,
		th,
		tr,
		vi,
		ru,
		nl,
		it
	},
	silentTranslationWarn: true
})

// 设置语言方法
i18n.setLang = function(lang) {
	if (this.messages[lang]) {
		this.locale = lang
		uni.setStorageSync('app_lang', lang)

		// 触发全局事件
		uni.$emit('language-changed', lang)
		
		//设置传递后端当前语言标识
		if (lang == 'zhTw') {
			updateLang('tw')
		}else if(lang=='zh'){
			updateLang('zh-cn') 
		} else {
			const languages = ['en', 'tw', 'ar', 'ko', 'tr', 'de', 'it', 'ja', 'vi', 'th', 'pt', 'ru', 'nl','es'];
			const systemLang = languages.includes(lang)?lang:'en'
			updateLang(systemLang)
		}

		// 设置RTL布局
		//this.setRTLLayout(lang)

		return lang
	}
	return this.locale
}

// 设置RTL布局（阿拉伯语）
// i18n.setRTLLayout = function(lang) {
//   const rtlLangs = ['ar']
//   const isRTL = rtlLangs.includes(lang)

//   // 设置页面方向
//   document.documentElement.dir = isRTL ? 'rtl' : 'ltr'

//   // 设置导航栏方向（如果需要）
//   // 注意：UniApp对RTL的支持有限，可能需要额外处理
// }

// 初始化RTL布局
// i18n.setRTLLayout(savedLang)

export default i18n